// #include <windows.h>  
// #include <stdio.h>  
// #include <string.h>  
// #include <time.h>  
  
// #define SHM_NAME "Global\\shared_mem"  
// #define SHM_SIZE 1024  
  
// int main() {  
//     HANDLE hMapFile;  
//     LPVOID lpMapView;  
//     HANDLE hFile;  
  
//     // 创建或打开文件映射对象  
//     hFile = CreateFile(SHM_NAME, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);  
//     if (hFile == INVALID_HANDLE_VALUE) {  
//         fprintf(stderr, "Error opening file handle\n");  
//         return 1;  
//     }  
  
//     // 创建文件映射对象  
//     hMapFile = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, SHM_SIZE, NULL);  
//     if (hMapFile == NULL) {  
//         CloseHandle(hFile);  
//         fprintf(stderr, "Error creating file mapping\n");  
//         return 1;  
//     }  
  
//     // 将文件映射到进程的地址空间  
//     lpMapView = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, SHM_SIZE);  
//     if (lpMapView == NULL) {  
//         CloseHandle(hMapFile);  
//         CloseHandle(hFile);  
//         fprintf(stderr, "Error mapping view of file\n");  
//         return 1;  
//     }  
  
//     int a = 0;  
//     while (1) {  
//         Sleep(1);  // 1 millisecond  
//         a++;  
//         char buffer[20];  
//         sprintf(buffer, "1%d", a);  
  
//         // 更新共享内存  
//         CopyMemory((char*)lpMapView, buffer, strlen(buffer));  
  
//         while (1) {  
//             Sleep(10);  // 10 milliseconds  
//             if (((char*)lpMapView)[0] == 'P') {  
//                 break;  
//             }  
//         }  
//     }  
  
//     // 注意：在实际应用中，你需要在某个条件下退出循环  
//     // 并且在退出前调用 UnmapViewOfFile 和 CloseHandle  
  
//     // 清理资源  
//     UnmapViewOfFile(lpMapView);  
//     CloseHandle(hMapFile);  
//     CloseHandle(hFile);  
  
//     return 0;  
// }